A data communications network transmits data among and between network devices (sometimes also referred to as “nodes”) physically and logically connected to the network. The physical configuration of a network changes as network devices are added or removed from the network and as physical connections between devices are made or changed. The logical configuration of a network changes as logical connections are established between communicating network devices utilizing the physical structure of the network. Network devices include devices that can send and/or receive data, as well as devices that can forward data. Network devices that can forward data are important in all but the very simplest networks. In most networks direct connections do not exist between most network devices. Instead, each network device is connected to a limited number of adjacent network devices. For network devices to be able to communicate when they are not physically connected, the two communicating network devices rely on intermediate network devices to forward communications between them.
Data is commonly transmitted over a data communications network in the form of discrete chunks of data referred to as “packets”. A string of data is broken up into packets at the sending network device and sent separately over the network to the receiving network device. The network device receives the individual packets and assembles them in the correct order to reconstruct the original data string. The particular manner in which packets are broken up and transmitted from one network device to another is defined as a “network protocol”. One prominent network protocol is the “Internet Protocol”, usually referred to by its acronym, “IP”, or as the “IP protocol.” Another protocol is called “Multi-Protocol Label Switching”, or “MPLS”.
Data communications networks are often conceptualized as comprising a hierarchy of communications “layers” that establish different types of connections between network devices. The more basic functions are provided at the lower layers, while successively more sophisticated functions are provided at successively higher layers. Different protocols are used to communicate between devices on each layer. Layering allows sophisticated communications functions to be built up using relatively simple protocols at each layer.
One common hierarchical network model is the so-called OSI “seven-layer” model. In the OSI model, each lower layer in the model provides communications capabilities or functions that are utilized by the next higher layer. A schematic illustration of the OSI seven-layer model is shown in FIG. 2. As shown in FIG. 2, the seven layers in the OSI model, beginning from the bottom, are physical layer 205, data link layer 210, network layer 215, transport layer 220, session layer 225, presentation layer 230, and application layer 235. In relation to the OSI model, the IP protocol is commonly considered as being associated with the third layer, network layer 215.
In an IP network, each sending and receiving device is assigned a 32-bit address. The address is usually written as a series of four “octets” (e.g., numbers within a range of 0-255) separated by periods. Examples of IP addresses are 127.0.0.1, 205.160.34.112, 23.1.99.244, etc.
Each IP packet sent over an IP network includes the sender's IP address and the recipient's IP address. The recipient's IP address is used to route the packet from the sending network device via intermediate network devices that have IP forwarding capabilities to the recipient network device.
An example of a simple network that illustrates IP forwarding is shown in FIG. 1. The network of FIG. 1 includes two types of network devices: non-IP-forwarding devices 105, 110, 115 and 120 (represented by rectangles in FIG. 1 and which may, for example, comprise personal computers or computer workstations), and IP-forwarding devices 125, 130, 135, 140, 145 and 150 (represented by circles in FIG. 1 and which may, for example, comprise IP routers). The network devices in FIG. 1 are interconnected by a various bidirectional connections or links 160, 162, 164, 166, 168, 170, 172, 174, 176, 178 and 180, represented in FIG. 1 by two-headed arrows. Links 160-180 may comprise direct physical connections between the adjacent network devices, or may comprise logical connections that involve intermediate devices but that are seen by the connected devices as direct connections. For example, network device 110 is connected to network device 130 via link 166. That is, network device 110 knows that if it sends a communication via its interface port that is connected to link 166, the communication will be received by network device 130. It doesn't matter to network device 110 whether link 166 is a single physical connection or a series of physical connections. Logical links such as links 160-180 in FIG. 1 that connect two network devices will be referred to sometimes herein as “IP links”. The term “IP links” as used herein includes logical links that use the IP protocol, as well as logical links utilizing other protocols, such as, for example, MPLS.
In the example network of FIG. 1, network device 110 is connected directly (via link 166) only to network device 130. For network device 110 to communicate to any other network device, the IP forwarding capabilities of network device 130 must be used.
In FIG. 1, network device 130 has direct connections to three other network devices in addition to network device 110, to which it is connected via link 166. The other links are links 160, 168 and 176, which connect network device 130 to network devices 125, 135 and 145, respectively. Each of links 160, 166, 168 and 176 are typically connected to separate ports on network device 130. Each port may be a separate physical interface, or two or more ports may share a single physical interface. Each port may have its own IP address assigned to it. In that case, network device 130, as well of each of its ports, may have distinct IP addresses.
Network device 130 of FIG. 1 has been defined to have IP forwarding capabilities. That means it must be able to receive an IP packet (intended for delivery to a network device other than network device 130) from one of the IP links it is connected to and forward it along at least one of the other the IP links it is connected to. In the general case where network device 130 is a typical router, network device 130 will be able to receive and forward IP packets from and to any of the IP links 160, 166, 168 and 176 it is connected to (provided the links are functioning). The other network devices 125, 135, 140, 145 and 150 with IP forwarding capabilities in the example of FIG. 1 are similarly able to receive and forward IP packets from and to any of the IP links they are connected to.
If network device 110 wants to send a communication to, for example, network device 115, there are a number of paths that the communication can take. The most direct path comprises links 166, 176, and 178. However, other paths include the path comprising links 166, 168, 174, 180 and 178, and even the path comprising links 166, 160, 162, 174, 180 and 178.
When network device 110 sends out IP packets to network device 115, it does not know what path each of the packets will take. Network device 110 simply addresses the packet to network device 115 using network device 115's IP number (namely 129.111.110.9 in the example of FIG. 1), and sends it out over link 166 towards network device 130.
What network device 130 does with the packet after it receives it depends on how network device 130 is configured. For example, network device 130 may be configured to forward any packet received from link 166 along link 176. Alternatively, network device 130 may be configured to forward packets along links depending on the destination IP number of the packet. Network device 130 may also be programmed to monitor traffic along each link and to adapt its forwarding scheme to traffic conditions.
How each network device forwards packets depends on the capabilities and configuration of the particular network device. As is evident even from the simple network example of FIG. 1, it is important that network devices that do IP forwarding be properly configured to interoperate with each other to ensure that packets are correctly routed to their destination.
Configuration of network devices within a network comprises an aspect of network management. Network devices may be locally managed or remotely (centrally) managed. Local management of a network device may be accomplished using a workstation or terminal directly connected to the network device. Remote management of a network device may be accomplished from remote terminals or workstations that communicate with the network device via the network, provided the network device is provided with a management protocol that allows remote management. One protocol used for remote management of network devices is the Simple Network Management Protocol (SNMP). SNMP provides a set of commands and parameters that allow communication with and configuration of network devices. A person who is responsible for management of a network is commonly referred to as a “network manager.” Network management software systems provide tools to network managers that facilitate central management of often geographically dispersed network devices.
To be able to manage a network device, a network manager must know that the network device exists, how it is connected to the network and to other network devices, and what its capabilities are. In addition, the network device must have the capability of being remotely managed, the network management system used by the network manager must be able to communicate with the network device using the correct protocol, and the network manager must be apply to supply any required logins, passwords, or other security information.
The configuration of large networks often changes through the addition, removal and/or replacement of network devices. To properly manage large networks to ensure that IP packets are routed correctly over the network, the network manager must know when data forwarding network devices are added or removed. One system used to discover network devices with data forwarding capabilities is described in U.S. patent application Ser. No. 10/029,124 for “Method and Apparatus for Automatic Discovery of Network Devices with Data Forwarding Capabilities” assigned to the assignee of the present invention and incorporated by reference herein.
In small local networks, for example those in which the entire network comprises only a handful of network devices, it is relatively easy for a network manager to physically inspect each network device and know from first hand inspection when a network device is added or removed. In large, geographically dispersed networks comprising hundreds of network devices, it would be extremely difficult for the network manager to know from a first hand inspection what the state of the entire network is at any given time.
A network being managed often comprises of a plurality of subnets. A subnet is a group of network devices belonging to a specific block or subset of IP addresses. For example, one type of subnet comprises IP numbers that share the first three octets, as for example 215.223.46.x (where “x” can be any number from 0 to 255). Larger subnets may share only the first two octets (e.g. 215.223.x.y). In addition to subnets, networks may also include individual IP numbers or ranges of IP numbers. A network manager generally will know which subnets are included in the network being managed. However, the network manager will not necessarily know beforehand the IP number of a network device to be added to a network, particularly if the IP number is not within one of the network's known subnets.
In addition to needing to know the identity and physical configuration of the network devices themselves, it is also important for the network manager to be able to monitor logical connections between network devices. A logical connection exists between network devices when at least one port of a first network device is configured so that a message sent out through that port will arrive at a known destination (either a network address or a second network device). The destination may be a particular port or interface on another network device, a particular IP address, or a particular subnetwork.